﻿using System;
using Dados.Interfaces;
using Dados.ClassesSQLServer;
using Dados.ValueObjects;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;


namespace Negocios
{
    [DataObject]
    public class HotelBOMetodos
    {
        private IHotel IhotelDados;
        
        public HotelBOMetodos(){
            //verifica em algum arquivo de configuração qual o BD

             IhotelDados = new HotelSqlServer();
        }
        [DataObjectMethod(DataObjectMethodType.Insert, true)]
       
        public bool inserir(HotelBO hbo){
           HotelVO hVO = new HotelVO();
            hVO.Email = hbo.Email;
            hVO.Endereco = hbo.Endereco;
            hVO.Estrelas = hbo.Estrelas;
            hVO.Id = hbo.Id;
            hVO.Site = hbo.Site;
            hVO.Telefone = hbo.Telefone;
            hVO.Nome = hbo.Nome;
              return (IhotelDados.Insere(hVO) == 1);
         
         }
        [DataObjectMethod(DataObjectMethodType.Update, true)]
         public bool atualizar( HotelBO hbo){
           HotelVO hVO = new HotelVO();
            hVO.Email = hbo.Email;
            hVO.Endereco = hbo.Endereco;
            hVO.Estrelas = hbo.Estrelas;
            hVO.Id = hbo.Id;
            hVO.Site = hbo.Site;
            hVO.Telefone = hbo.Telefone;
            hVO.Nome = hbo.Nome;
         return IhotelDados.Atualiza(hVO) == 1;
             
         
         }
        [DataObjectMethod(DataObjectMethodType.Delete, true)]
         public bool remover(int id){
           
             if (Consultar(id) == null)
                 return false;
             else
                return IhotelDados.Remove(id) == 1;

         
         
         }

        [DataObjectMethod(DataObjectMethodType.Select, false)] 
        public HotelBO  Consultar(int id)
         {
             HotelVO hVO = IhotelDados.Consulta(id);
             HotelBO hBO = null;
             if (hVO != null)
             {
                 hBO = new HotelBO();
                 hBO.Nome = hVO.Nome;
                 hBO.Id = hVO.Id;
                 hBO.Site = hVO.Site;
                 hBO.Telefone = hVO.Telefone;
                 hBO.Estrelas = hVO.Estrelas;
                 hBO.Endereco = hVO.Endereco;
                 hBO.Email = hVO.Email;
             }
             
             return hBO;
         
         }
        [DataObjectMethod(DataObjectMethodType.Select, true)]
     public List<HotelBO> ConsultaTodos()     
    {
        List<HotelBO> IhotelBO = new List<HotelBO>();
        List<HotelVO> IhotelVO = (new HotelSqlServer()).ConsultaTodos();
         foreach ( HotelVO hVO in IhotelVO)
             {
                  HotelBO hBO = new HotelBO();
              hBO.Nome = hVO.Nome;
             hBO.Id = hVO.Id;
             hBO.Site = hVO.Site;
             hBO.Telefone = hVO.Telefone;
             hBO.Estrelas = hVO.Estrelas;
             hBO.Endereco = hVO.Endereco;
             hBO.Email = hVO.Email;


             IhotelBO.Add(hBO);
         }
        return IhotelBO;
        }
 
    }

}
